Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vk: Handle VK_ERROR_FRAGMENTATION when allocating descriptor pools #14012

Merged
merged 4 commits into from Jun 13, 2023

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented Jun 12, 2023

The intel driver only support 1 million descriptor objects (we use update-after-bind everywhere) which sounds like a lot until you consider that we consume something like 50 of them every draw call. The moment a complex scene appears the driver implodes.
This fix adds a fallback in the form of a full stall to reset the queues. The downside to this is that intel GPUs will never be able to render high-draw-call-count titles at any reasonable framerates. Anything with over 10k draws will just crater.

Fixes #13997

@kd-11
Copy link
Contributor Author

kd-11 commented Jun 13, 2023

Temporarily relegating to draft. I fixed my windows 11 install on the intel machine, and I think there are better ways to handle the out of pool issue without spiking down to single digit fps every few seconds.

- It is very likely that the resource would be available if we just waited a while for the GPU queue to clear.
- Instead of also discarding the current work, first check if we can get by without a hard sync.
@kd-11 kd-11 marked this pull request as ready for review June 13, 2023 19:42
@kd-11 kd-11 merged commit 49c6c2c into RPCS3:master Jun 13, 2023
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RPCS3 Emulator Crash After ~1-2 mins of gameplay
2 participants